package com.sanbi.common.express.request;

import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 *
 * @description: 查询物流产品信息请求对象
 * @author: wanpeng
 * @create: 2024-05-13 17:46
 * @Version 1.0
 **/
@Data
public class LogisticsProductListRequest implements Serializable {

    /**
     * 菜鸟服务代码，可选值：F(订单履约) 参见 CaiNiaoServiceCodeEnum
     */
    @NotNull(message = "service_code isn't null.")
    private String service_code;

    /**
     * 产品分类代码。
     * 可选值：<br>first(头程); <br>warehouse(仓内); <br>end(尾程)。
     * <br>*注：如果产品分类是first(头程)产品，则source_position_code(起始地仓库代码)为仓库代码,dest_position_code(目的地仓库代码)为仓库代码。起始地和目的地必填,其它参数为空。
     * <br> 如果产品分类是warehouse(仓内产品)，则只需要source_position_code(起始地仓库代码)为仓库代码。起始地仓库代码必填,其它参数为空。
     * <br>如果产品分类是end(尾程)产品，则source_position_code(起始地)为仓库代码,其它参数可为空。
     */
    @NotNull(message = "category_code isn't null.")
    private String category_code;

    /**
     * 起始地仓库代码。传值请参考category_code（产品分类代码）描述定义。
     */
    private String source_position_code;

    /**
     * 目的地仓库代码。传值请参考category_code（产品分类代码）描述定义。
     */
    private String dest_position_code;

    /**
     * 目的地-国家二字码。传值请参考category_code（产品分类代码）描述定义。
     */
    private String dest_country_code;

    /**
     * 目的地-省名称。传值请参考category_code（产品分类代码）描述定义。
     */
    private String dest_state_name;

    /**
     * 目的地-市名称。传值请参考category_code（产品分类代码）描述定义。
     */
    private String dest_city_name;

    /**
     * 目的地-邮编。传值请参考category_code（产品分类代码）描述定义。
     */
    private String dest_post_code;
}
